home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60src.lha / Vim / vim60 / src / option.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-16  |  24.4 KB  |  729 lines

  1. /* vi:set ts=8 sts=4 sw=4:
  2.  *
  3.  * VIM - Vi IMproved    by Bram Moolenaar
  4.  *
  5.  * Do ":help uganda"  in Vim to read copying and usage conditions.
  6.  * Do ":help credits" in Vim to see a list of people who contributed.
  7.  */
  8.  
  9. /*
  10.  * option.h: definition of global variables for settable options
  11.  */
  12.  
  13. #ifndef EXTERN
  14. # define EXTERN extern
  15. # define INIT(x)
  16. #else
  17. # ifndef INIT
  18. #  define INIT(x) x
  19. # endif
  20. #endif
  21.  
  22. /* default values for p_efm 'errorformat' */
  23. #ifdef AMIGA
  24. # define DFLT_EFM    "%f>%l:%c:%t:%n:%m,%f:%l: %t%*\\D%n: %m,%f %l %t%*\\D%n: %m,%*[^\"]\"%f\"%*\\D%l: %m,%f:%l:%m"
  25. #else
  26. # if defined(MSDOS) || defined(WIN3264)
  27. #  define DFLT_EFM    "%f(%l) : %t%*\\D%n: %m,%*[^\"]\"%f\"%*\\D%l: %m,%f(%l) : %m,%*[^ ] %f %l: %m,%f:%l:%m"
  28. # else
  29. #  if defined(__EMX__)    /* put most common here (i.e. gcc format) at front */
  30. #   define DFLT_EFM    "%f:%l:%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f(%l:%c) : %m"
  31. #  else
  32. #   if defined(__QNX__)
  33. #    define DFLT_EFM    "%f(%l):%*[^WE]%t%*\\D%n:%m"
  34. #   else
  35. #    ifdef VMS
  36. #     define DFLT_EFM    "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f"
  37. #    else /* Unix, probably */
  38. #     ifdef EBCDIC
  39. #define DFLT_EFM    "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f"
  40. #     else
  41. #define DFLT_EFM    "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f"
  42. #     endif
  43. #    endif
  44. #   endif
  45. #  endif
  46. # endif
  47. #endif
  48.  
  49. #define DFLT_GREPFORMAT    "%f:%l:%m,%f:%l%m,%f  %l%m"
  50.  
  51. /* default values for b_p_ff 'fileformat' and p_ffs 'fileformats' */
  52. #define FF_DOS        "dos"
  53. #define FF_MAC        "mac"
  54. #define FF_UNIX        "unix"
  55.  
  56. #ifdef USE_CRNL
  57. # define DFLT_FF    "dos"
  58. # define DFLT_FFS_VIM    "dos,unix"
  59. # define DFLT_FFS_VI    "dos,unix"    /* also autodetect in compatible mode */
  60. # define DFLT_TEXTAUTO    TRUE
  61. #else
  62. # ifdef USE_CR
  63. #  define DFLT_FF    "mac"
  64. #  define DFLT_FFS_VIM    "mac,unix,dos"
  65. #  define DFLT_FFS_VI    "mac,unix,dos"
  66. #  define DFLT_TEXTAUTO    TRUE
  67. # else
  68. #  define DFLT_FF    "unix"
  69. #  define DFLT_FFS_VIM    "unix,dos"
  70. #  define DFLT_FFS_VI    ""
  71. #  define DFLT_TEXTAUTO    FALSE
  72. # endif
  73. #endif
  74.  
  75.  
  76. #ifdef FEAT_MBYTE
  77. /* Possible values for 'encoding' */
  78. # define ENC_UCSBOM    "ucs-bom"    /* check for BOM at start of file */
  79.  
  80. /* default value for 'encoding' */
  81. # define ENC_DFLT    "latin1"
  82. #endif
  83.  
  84. /* end-of-line style */
  85. #define EOL_UNKNOWN    -1    /* not defined yet */
  86. #define EOL_UNIX    0    /* NL */
  87. #define EOL_DOS        1    /* CR NL */
  88. #define EOL_MAC        2    /* CR */
  89.  
  90. /* Formatting options for p_fo 'formatoptions' */
  91. #define FO_WRAP        't'
  92. #define FO_WRAP_COMS    'c'
  93. #define FO_RET_COMS    'r'
  94. #define FO_OPEN_COMS    'o'
  95. #define FO_Q_COMS    'q'
  96. #define FO_Q_NUMBER    'n'
  97. #define FO_Q_SECOND    '2'
  98. #define FO_INS_VI    'v'
  99. #define FO_INS_LONG    'l'
  100. #define FO_INS_BLANK    'b'
  101. #define FO_MULTIBYTE    'm'
  102. #define FO_ONE_LETTER    '1'
  103.  
  104. #define DFLT_FO_VI    "vt"
  105. #define DFLT_FO_VIM    "tcq"
  106. #define FO_ALL        "tcroq2vlb1mn,"    /* for do_set() */
  107.  
  108. /* characters for the p_cpo option: */
  109. #define CPO_ALTREAD    'a'    /* ":read" sets alternate file name */
  110. #define CPO_ALTWRITE    'A'    /* ":write" sets alternate file name */
  111. #define CPO_BAR        'b'    /* "\|" ends a mapping */
  112. #define CPO_BSLASH    'B'    /* backslash in mapping is not special */
  113. #define CPO_SEARCH    'c'
  114. #define CPO_CONCAT    'C'    /* Don't concatenate sourced lines */
  115. #define CPO_DOTTAG    'd'    /* "./tags" in 'tags' is in current dir */
  116. #define CPO_DIGRAPH    'D'    /* No digraph after "r", "f", etc. */
  117. #define CPO_EXECBUF    'e'
  118. #define CPO_EMPTYREGION    'E'    /* operating on empty region is an error */
  119. #define CPO_FNAMER    'f'    /* set file name for ":r file" */
  120. #define CPO_FNAMEW    'F'    /* set file name for ":w file" */
  121. #define CPO_INTMOD    'i'    /* interrupt a read makes buffer modified */
  122. #define CPO_JOINSP    'j'    /* only use two spaces for join after '.' */
  123. #define CPO_ENDOFSENT    'J'    /* need two spaces to detect end of sentence */
  124. #define CPO_KEYCODE    'k'    /* don't recognize raw key code in mappings */
  125. #define CPO_KOFFSET    'K'    /* don't wait for key code in mappings */
  126. #define CPO_LITERAL    'l'    /* take char after backslash in [] literal */
  127. #define CPO_LISTWM    'L'    /* 'list' changes wrapmargin */
  128. #define CPO_SHOWMATCH    'm'
  129. #define CPO_NUMCOL    'n'    /* 'number' column also used for text */
  130. #define CPO_LINEOFF    'o'
  131. #define CPO_OVERNEW    'O'    /* silently overwrite new file */
  132. #define CPO_LISP    'p'    /* 'lisp' indenting */
  133. #define CPO_REDO    'r'
  134. #define CPO_BUFOPT    's'
  135. #define CPO_BUFOPTGLOB    'S'
  136. #define CPO_TAGPAT    't'
  137. #define CPO_UNDO    'u'    /* "u" undoes itself */
  138. #define CPO_CW        'w'    /* "cw" only changes one blank */
  139. #define CPO_FWRITE    'W'    /* "w!" doesn't overwrite readonly files */
  140. #define CPO_ESC        'x'
  141. #define CPO_YANK    'y'
  142. #define CPO_DOLLAR    '$'
  143. #define CPO_FILTER    '!'
  144. #define CPO_MATCH    '%'
  145. #define CPO_STAR    '*'    /* ":*" means ":@" */
  146. #define CPO_SPECI    '<'    /* don't recognize <> in mappings */
  147. #define CPO_DEFAULT    "aABceFs"
  148. #define CPO_ALL        "aAbBcCdDeEfFijJkKlLmnoOprsStuwWxy$!%*<"
  149.  
  150. /* characters for p_ww option: */
  151. #define WW_ALL        "bshl<>[],~"
  152.  
  153. /* characters for p_mouse option: */
  154. #define MOUSE_NORMAL    'n'        /* use mouse in Normal mode */
  155. #define MOUSE_VISUAL    'v'        /* use mouse in Visual/Select mode */
  156. #define MOUSE_INSERT    'i'        /* use mouse in Insert mode */
  157. #define MOUSE_COMMAND    'c'        /* use mouse in Command-line mode */
  158. #define MOUSE_HELP    'h'        /* use mouse in help buffers */
  159. #define MOUSE_RETURN    'r'        /* use mouse for hit-return message */
  160. #define MOUSE_A        "nvich"        /* used for 'a' flag */
  161. #define MOUSE_ALL    "anvichr"    /* all possible characters */
  162. #define MOUSE_NONE    ' '        /* don't use Visual selection */
  163. #define MOUSE_NONEF    'x'        /* forced modeless selection */
  164.  
  165. /* characters for p_shm option: */
  166. #define SHM_RO        'r'        /* readonly */
  167. #define SHM_MOD        'm'        /* modified */
  168. #define SHM_FILE    'f'        /* (file 1 of 2) */
  169. #define SHM_LAST    'i'        /* last line incomplete */
  170. #define SHM_TEXT    'x'        /* tx instead of textmode */
  171. #define SHM_LINES    'l'        /* "L" instead of "lines" */
  172. #define SHM_NEW        'n'        /* "[New]" instead of "[New file]" */
  173. #define SHM_WRI        'w'        /* "[w]" instead of "written" */
  174. #define SHM_A        "rmfixlnw"    /* represented by 'a' flag */
  175. #define SHM_WRITE    'W'        /* don't use "written" at all */
  176. #define SHM_TRUNC    't'        /* trunctate file messages */
  177. #define SHM_TRUNCALL    'T'        /* trunctate all messages */
  178. #define SHM_OVER    'o'        /* overwrite file messages */
  179. #define SHM_OVERALL    'O'        /* overwrite more messages */
  180. #define SHM_SEARCH    's'        /* no search hit bottom messages */
  181. #define SHM_ATTENTION    'A'        /* no ATTENTION messages */
  182. #define SHM_INTRO    'I'        /* intro messages */
  183. #define SHM_ALL        "rmfixlnwaWtToOsAI" /* all possible flags for 'shm' */
  184.  
  185. /* characters for p_go: */
  186. #define GO_ASEL        'a'        /* autoselect */
  187. #define GO_ASELML    'A'        /* autoselect modeless selection */
  188. #define GO_BOT        'b'        /* use bottom scrollbar */
  189. #define GO_FORG        'f'        /* start GUI in foreground */
  190. #define GO_GREY        'g'        /* use grey menu items */
  191. #define GO_ICON        'i'        /* use Vim icon */
  192. #define GO_LEFT        'l'        /* use left scrollbar */
  193. #define GO_VLEFT    'L'        /* left scrollbar with vert split */
  194. #define GO_MENUS    'm'        /* use menu bar */
  195. #define GO_NOSYSMENU    'M'        /* don't source system menu */
  196. #define GO_POINTER    'p'        /* pointer enter/leave callbacks */
  197. #define GO_RIGHT    'r'        /* use right scrollbar */
  198. #define GO_VRIGHT    'R'        /* right scrollbar with vert split */
  199. #define GO_TEAROFF    't'        /* add tear-off menu items */
  200. #define GO_TOOLBAR    'T'        /* add toolbar */
  201. #define GO_FOOTER    'F'        /* add footer */
  202. #define GO_VERTICAL    'v'        /* arrange dialog buttons vertically */
  203. #define GO_ALL        "aAbfFgilmMprtTv" /* all possible flags for 'go' */
  204.  
  205. /* flags for 'comments' option */
  206. #define COM_NEST    'n'        /* comments strings nest */
  207. #define COM_BLANK    'b'        /* needs blank after string */
  208. #define COM_START    's'        /* start of comment */
  209. #define COM_MIDDLE    'm'        /* middle of comment */
  210. #define COM_END        'e'        /* end of comment */
  211. #define COM_AUTO_END    'x'        /* last char of end closes comment */
  212. #define COM_FIRST    'f'        /* first line comment only */
  213. #define COM_LEFT    'l'        /* left adjusted */
  214. #define COM_RIGHT    'r'        /* right adjusted */
  215. #define COM_NOBACK    'O'        /* don't use for "O" command */
  216. #define COM_ALL        "nbsmexflrO"    /* all flags for 'comments' option */
  217. #define COM_MAX_LEN    50        /* maximum length of a part */
  218.  
  219. /* flags for 'statusline' option */
  220. #define STL_FILEPATH    'f'        /* path of file in buffer */
  221. #define STL_FULLPATH    'F'        /* full path of file in buffer */
  222. #define STL_FILENAME    't'        /* last part (tail) of file path */
  223. #define STL_COLUMN    'c'        /* column og cursor*/
  224. #define STL_VIRTCOL    'v'        /* virtual column */
  225. #define STL_VIRTCOL_ALT    'V'        /* - with 'if different' display */
  226. #define STL_LINE    'l'        /* line number of cursor */
  227. #define STL_NUMLINES    'L'        /* number of lines in buffer */
  228. #define STL_BUFNO    'n'        /* current buffer number */
  229. #define STL_KEYMAP    'k'        /* 'keymap' when active */
  230. #define STL_OFFSET    'o'        /* offset of character under cursor*/
  231. #define STL_OFFSET_X    'O'        /* - in hexadecimal */
  232. #define STL_BYTEVAL    'b'        /* byte value of character */
  233. #define STL_BYTEVAL_X    'B'        /* - in hexadecimal */
  234. #define STL_ROFLAG    'r'        /* readonly flag */
  235. #define STL_ROFLAG_ALT    'R'        /* - other display */
  236. #define STL_HELPFLAG    'h'        /* window is showing a help file */
  237. #define STL_HELPFLAG_ALT 'H'        /* - other display */
  238. #define STL_FILETYPE    'y'        /* 'filetype' */
  239. #define STL_FILETYPE_ALT 'Y'        /* - other display */
  240. #define STL_PREVIEWFLAG    'w'        /* window is showing the preview buf */
  241. #define STL_PREVIEWFLAG_ALT 'W'        /* - other display */
  242. #define STL_MODIFIED    'm'        /* modified flag */
  243. #define STL_MODIFIED_ALT 'M'        /* - other display */
  244. #define STL_PERCENTAGE    'p'        /* percentage through file */
  245. #define STL_ALTPERCENT    'P'        /* percentage as TOP BOT ALL or NN% */
  246. #define STL_ARGLISTSTAT    'a'        /* argument list status as (x of y) */
  247. #define STL_PAGENUM    'N'        /* page number (when printing)*/
  248. #define STL_VIM_EXPR    '{'        /* start of expression to substitute */
  249. #define STL_MIDDLEMARK    '='        /* separation between left and right */
  250. #define STL_TRUNCMARK    '<'        /* truncation mark if line is too long*/
  251. #define STL_HIGHLIGHT    '*'        /* highlight from (User)1..9 or 0 */
  252. #define STL_ALL        ((char_u *) "fFtcvVlLknoObBrRhHmYyWwMpPaN{")
  253.  
  254. /* flags used for parsed 'wildmode' */
  255. #define WIM_FULL    1
  256. #define WIM_LONGEST    2
  257. #define WIM_LIST    4
  258.  
  259. /* arguments for can_bs() */
  260. #define BS_INDENT    'i'    /* "Indent" */
  261. #define BS_EOL        'o'    /* "eOl" */
  262. #define BS_START    's'    /* "Start" */
  263.  
  264. #define LISPWORD_VALUE    "defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object"
  265.  
  266. /*
  267.  * The following are actual variabables for the options
  268.  */
  269.  
  270. #ifdef FEAT_RIGHTLEFT
  271. EXTERN long    p_aleph;    /* 'aleph' */
  272. #endif
  273. EXTERN int    p_ar;        /* 'autoread' */
  274. EXTERN int    p_aw;        /* 'autowrite' */
  275. EXTERN int    p_awa;        /* 'autowriteall' */
  276. EXTERN char_u    *p_bs;        /* 'backspace' */
  277. EXTERN char_u    *p_bg;        /* 'background' */
  278. EXTERN int    p_bk;        /* 'backup' */
  279. EXTERN char_u    *p_bkc;        /* 'backupcopy' */
  280. EXTERN char_u    *p_bdir;    /* 'backupdir' */
  281. EXTERN char_u    *p_bex;        /* 'backupext' */
  282. #ifdef FEAT_WILDIGN
  283. EXTERN char_u    *p_bsk;        /* 'backupskip' */
  284. #endif
  285. #ifdef FEAT_BEVAL
  286. EXTERN int    p_bdlay;    /* 'balloondelay' */
  287. #endif
  288. #ifdef FEAT_SUN_WORKSHOP
  289. EXTERN int    p_beval;    /* 'ballooneval' */
  290. #endif
  291. #ifdef FEAT_BROWSE
  292. EXTERN char_u    *p_bsdir;    /* 'browsedir' */
  293. #endif
  294. #ifdef MSDOS
  295. EXTERN int    p_biosk;    /* 'bioskey' */
  296. EXTERN int    p_consk;    /* 'conskey' */
  297. #endif
  298. #ifdef FEAT_LINEBREAK
  299. EXTERN char_u    *p_breakat;    /* 'breakat' */
  300. #endif
  301. #ifdef FEAT_MBYTE
  302. EXTERN char_u    *p_enc;        /* 'encoding' */
  303. EXTERN int    p_deco;        /* 'delcombine' */
  304. # ifdef FEAT_EVAL
  305. EXTERN char_u    *p_ccv;        /* 'charconvert' */
  306. # endif
  307. #endif
  308. #ifdef FEAT_CMDWIN
  309. EXTERN char_u    *p_cedit;    /* 'cedit' */
  310. EXTERN long    p_cwh;        /* 'cmdwinheight' */
  311. #endif
  312. #ifdef FEAT_CLIPBOARD
  313. EXTERN char_u    *p_cb;        /* 'clipboard' */
  314. EXTERN int    clip_unnamed INIT(= FALSE);
  315. EXTERN int    clip_autoselect INIT(= FALSE);
  316. EXTERN int    clip_autoselectml INIT(= FALSE);
  317. EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
  318. #endif
  319. EXTERN long    p_ch;        /* 'cmdheight' */
  320. #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
  321. EXTERN int    p_confirm;    /* 'confirm' */
  322. #endif
  323. EXTERN int    p_cp;        /* 'compatible' */
  324. EXTERN char_u    *p_cpo;        /* 'cpoptions' */
  325. #ifdef FEAT_CSCOPE
  326. EXTERN char_u    *p_csprg;    /* 'cscopeprg' */
  327. EXTERN int    p_cst;        /* 'cscopetag' */
  328. EXTERN long    p_csto;        /* 'cscopetagorder' */
  329. EXTERN long    p_cspc;        /* 'cscopepathcomp' */
  330. EXTERN int    p_csverbose;    /* 'cscopeverbose' */
  331. #endif
  332. EXTERN char_u    *p_debug;    /* 'debug' */
  333. #ifdef FEAT_FIND_ID
  334. EXTERN char_u    *p_def;        /* 'define' */
  335. EXTERN char_u    *p_inc;
  336. #endif
  337. #ifdef FEAT_DIFF
  338. EXTERN char_u    *p_dip;        /* 'diffopt' */
  339. # ifdef FEAT_EVAL
  340. EXTERN char_u    *p_dex;        /* 'diffexpr' */
  341. # endif
  342. #endif
  343. #ifdef FEAT_INS_EXPAND
  344. EXTERN char_u    *p_dict;    /* 'dictionary' */
  345. #endif
  346. #ifdef FEAT_DIGRAPHS
  347. EXTERN int    p_dg;        /* 'digraph' */
  348. #endif
  349. EXTERN char_u    *p_dir;        /* 'directory' */
  350. EXTERN char_u    *p_dy;        /* 'display' */
  351. EXTERN unsigned    dy_flags;
  352. #ifdef IN_OPTION_C
  353. static char *(p_dy_values[]) = {"lastline", "uhex", NULL};
  354. #endif
  355. #define DY_LASTLINE        0x001
  356. #define DY_UHEX            0x002
  357. EXTERN int    p_ed;        /* 'edcompatible' */
  358. #ifdef FEAT_VERTSPLIT
  359. EXTERN char_u    *p_ead;        /* 'eadirection' */
  360. #endif
  361. EXTERN int    p_ea;        /* 'equalalways' */
  362. EXTERN char_u    *p_ep;        /* 'equalprg' */
  363. EXTERN int    p_eb;        /* 'errorbells' */
  364. #ifdef FEAT_QUICKFIX
  365. EXTERN char_u    *p_ef;        /* 'errorfile' */
  366. EXTERN char_u    *p_efm;        /* 'errorformat' */
  367. EXTERN char_u    *p_gefm;    /* 'grepformat' */
  368. EXTERN char_u    *p_gp;        /* 'grepprg' */
  369. #endif
  370. #ifdef FEAT_AUTOCMD
  371. EXTERN char_u    *p_ei;        /* 'eventignore' */
  372. #endif
  373. EXTERN int    p_ek;        /* 'esckeys' */
  374. EXTERN int    p_exrc;        /* 'exrc' */
  375. #ifdef FEAT_MBYTE
  376. EXTERN char_u    *p_fencs;    /* 'fileencodings' */
  377. #endif
  378. EXTERN char_u    *p_ffs;        /* 'fileformats' */
  379. #ifdef FEAT_FOLDING
  380. EXTERN char_u    *p_fcl;        /* 'foldclose' */
  381. EXTERN long    p_fdls;        /* 'foldlevelstart' */
  382. EXTERN char_u    *p_fdo;        /* 'foldopen' */
  383. EXTERN unsigned    fdo_flags;
  384. # ifdef IN_OPTION_C
  385. static char *(p_fdo_values[]) = {"all", "block", "hor", "mark", "percent",
  386.                  "quickfix", "search", "tag", "insert",
  387.                  "undo", "jump", NULL};
  388. # endif
  389. # define FDO_ALL        0x001
  390. # define FDO_BLOCK        0x002
  391. # define FDO_HOR        0x004
  392. # define FDO_MARK        0x008
  393. # define FDO_PERCENT        0x010
  394. # define FDO_QUICKFIX        0x020
  395. # define FDO_SEARCH        0x040
  396. # define FDO_TAG        0x080
  397. # define FDO_INSERT        0x100
  398. # define FDO_UNDO        0x200
  399. # define FDO_JUMP        0x400
  400. #endif
  401. EXTERN char_u    *p_fp;        /* 'formatprg' */
  402. EXTERN int    p_gd;        /* 'gdefault' */
  403. #ifdef FEAT_PRINTER
  404. EXTERN char_u    *p_pdev;    /* 'printdevice' */
  405. # ifdef FEAT_POSTSCRIPT
  406. EXTERN char_u    *p_pexpr;    /* 'printexpr' */
  407. # endif
  408. EXTERN char_u    *p_pfn;        /* 'printfont' */
  409. EXTERN char_u    *p_popt;    /* 'printoptions' */
  410. EXTERN char_u    *p_header;    /* 'printheader' */
  411. #endif
  412. #ifdef FEAT_GUI
  413. EXTERN char_u    *p_guifont;    /* 'guifont' */
  414. # ifdef FEAT_XFONTSET
  415. EXTERN char_u    *p_guifontset;    /* 'guifontset' */
  416. # endif
  417. # ifdef FEAT_MBYTE
  418. EXTERN char_u    *p_guifontwide;    /* 'guifontwide' */
  419. # endif
  420. EXTERN int    p_guipty;    /* 'guipty' */
  421. #endif
  422. #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
  423. EXTERN long    p_ghr;        /* 'guiheadroom' */
  424. #endif
  425. #ifdef CURSOR_SHAPE
  426. EXTERN char_u    *p_guicursor;    /* 'guicursor' */
  427. #endif
  428. #ifdef FEAT_MOUSESHAPE
  429. EXTERN char_u    *p_mouseshape;    /* 'mouseshape' */
  430. #endif
  431. #if defined(FEAT_GUI)
  432. EXTERN char_u    *p_go;        /* 'guioptions' */
  433. #endif
  434. EXTERN char_u    *p_hf;        /* 'helpfile' */
  435. #ifdef FEAT_WINDOWS
  436. EXTERN long    p_hh;        /* 'helpheight' */
  437. #endif
  438. EXTERN int    p_hid;        /* 'hidden' */
  439. /* Use P_HID to check if a buffer is to be hidden when it is no longer
  440.  * visible in a window. */
  441. #ifndef FEAT_QUICKFIX
  442. # define P_HID(dummy) (p_hid || cmdmod.hide)
  443. #else
  444. # define P_HID(buf) (buf_hide(buf))
  445. #endif
  446. EXTERN char_u    *p_hl;        /* 'highlight' */
  447. EXTERN int    p_hls;        /* 'hlsearch' */
  448. EXTERN long    p_hi;        /* 'history' */
  449. #ifdef FEAT_RIGHTLEFT
  450. EXTERN int    p_hkmap;    /* 'hkmap' */
  451. EXTERN int    p_hkmapp;    /* 'hkmapp' */
  452. # ifdef FEAT_FKMAP
  453. EXTERN int    p_fkmap;    /* 'fkmap' */
  454. EXTERN int    p_altkeymap;    /* 'altkeymap' */
  455. # endif
  456. #endif
  457. #ifdef FEAT_TITLE
  458. EXTERN int    p_icon;        /* 'icon' */
  459. EXTERN char_u    *p_iconstring;    /* 'iconstring' */
  460. #endif
  461. EXTERN int    p_ic;        /* 'ignorecase' */
  462. #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
  463. EXTERN char_u    *p_imak;    /* 'imactivatekey' */
  464. #endif
  465. #ifdef USE_IM_CONTROL
  466. EXTERN int    p_imcmdline;    /* 'imcmdline' */
  467. EXTERN int    p_imdisable;    /* 'imdisable' */
  468. #endif
  469. EXTERN int    p_is;        /* 'incsearch' */
  470. EXTERN int    p_im;        /* 'insertmode' */
  471. EXTERN char_u    *p_isf;        /* 'isfname' */
  472. EXTERN char_u    *p_isi;        /* 'isident' */
  473. EXTERN char_u    *p_isp;        /* 'isprint' */
  474. EXTERN int    p_js;        /* 'joinspaces' */
  475. EXTERN char_u    *p_kp;        /* 'keywordprg' */
  476. #ifdef FEAT_VISUAL
  477. EXTERN char_u    *p_km;        /* 'keymodel' */
  478. #endif
  479. #ifdef FEAT_LANGMAP
  480. EXTERN char_u    *p_langmap;    /* 'langmap'*/
  481. #endif
  482. #if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG)
  483. EXTERN char_u    *p_lm;        /* 'langmenu' */
  484. #endif
  485. #ifdef FEAT_GUI
  486. EXTERN long    p_linespace;    /* 'linespace' */
  487. #endif
  488. #ifdef FEAT_LISP
  489. EXTERN char_u    *p_lispwords;    /* 'lispwords' */
  490. #endif
  491. #ifdef FEAT_WINDOWS
  492. EXTERN long    p_ls;        /* 'laststatus' */
  493. #endif
  494. EXTERN char_u    *p_lcs;        /* 'listchars' */
  495.  
  496. EXTERN int    p_lz;        /* 'lazyredraw' */
  497. EXTERN int    p_lpl;        /* 'loadplugins' */
  498. EXTERN int    p_magic;    /* 'magic' */
  499. #ifdef FEAT_QUICKFIX
  500. EXTERN char_u    *p_mef;        /* 'makeef' */
  501. EXTERN char_u    *p_mp;        /* 'makeprg' */
  502. #endif
  503. EXTERN long    p_mat;        /* 'matchtime' */
  504. #ifdef FEAT_EVAL
  505. EXTERN long    p_mfd;        /* 'maxfuncdepth' */
  506. #endif
  507. EXTERN long    p_mmd;        /* 'maxmapdepth' */
  508. EXTERN long    p_mm;        /* 'maxmem' */
  509. EXTERN long    p_mmt;        /* 'maxmemtot' */
  510. #ifdef FEAT_MENU
  511. EXTERN long    p_mis;        /* 'menuitems' */
  512. #endif
  513. EXTERN long    p_mls;        /* 'modelines' */
  514. EXTERN char_u    *p_mouse;    /* 'mouse' */
  515. #ifdef FEAT_GUI
  516. EXTERN int    p_mousef;    /* 'mousefocus' */
  517. EXTERN int    p_mh;        /* 'mousehide' */
  518. #endif
  519. EXTERN char_u    *p_mousem;    /* 'mousemodel' */
  520. EXTERN long    p_mouset;    /* 'mousetime' */
  521. EXTERN int    p_more;        /* 'more' */
  522. EXTERN char_u    *p_para;    /* 'paragraphs' */
  523. EXTERN int    p_paste;    /* 'paste' */
  524. EXTERN char_u    *p_pt;        /* 'pastetoggle' */
  525. #if defined(FEAT_EVAL) && defined(FEAT_DIFF)
  526. EXTERN char_u    *p_pex;        /* 'patchexpr' */
  527. #endif
  528. EXTERN char_u    *p_pm;        /* 'patchmode' */
  529. EXTERN char_u    *p_path;    /* 'path' */
  530. #ifdef FEAT_SEARCHPATH
  531. EXTERN char_u    *p_cdpath;    /* 'cdpath' */
  532. #endif
  533. EXTERN int    p_remap;    /* 'remap' */
  534. EXTERN long    p_report;    /* 'report' */
  535. #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
  536. EXTERN long    p_pvh;        /* 'previewheight' */
  537. #endif
  538. #ifdef WIN3264
  539. EXTERN int    p_rs;        /* 'restorescreen' */
  540. #endif
  541. #ifdef FEAT_RIGHTLEFT
  542. EXTERN int    p_ari;        /* 'allowrevins' */
  543. EXTERN int    p_ri;        /* 'revins' */
  544. #endif
  545. #ifdef FEAT_CMDL_INFO
  546. EXTERN int    p_ru;        /* 'ruler' */
  547. #endif
  548. #ifdef FEAT_STL_OPT
  549. EXTERN char_u    *p_ruf;        /* 'rulerformat' */
  550. #endif
  551. EXTERN char_u    *p_rtp;        /* 'runtimepath' */
  552. EXTERN long    p_sj;        /* 'scrolljump' */
  553. EXTERN long    p_so;        /* 'scrolloff' */
  554. #ifdef FEAT_SCROLLBIND
  555. EXTERN char_u    *p_sbo;        /* 'scrollopt' */
  556. #endif
  557. EXTERN char_u    *p_sections;    /* 'sections' */
  558. EXTERN int    p_secure;    /* 'secure' */
  559. #ifdef FEAT_VISUAL
  560. EXTERN char_u    *p_sel;        /* 'selection' */
  561. EXTERN char_u    *p_slm;        /* 'selectmode' */
  562. #endif
  563. #ifdef FEAT_SESSION
  564. EXTERN char_u    *p_ssop;    /* 'sessionoptions' */
  565. EXTERN unsigned    ssop_flags;
  566. # ifdef IN_OPTION_C
  567. /* Also used for 'viewoptions'! */
  568. static char *(p_ssop_values[]) = {"buffers", "winpos", "resize", "winsize",
  569.     "localoptions", "options", "help", "blank", "globals", "slash", "unix",
  570.     "sesdir", "curdir", "folds", "cursor", NULL};
  571. # endif
  572. # define SSOP_BUFFERS        0x001
  573. # define SSOP_WINPOS        0x002
  574. # define SSOP_RESIZE        0x004
  575. # define SSOP_WINSIZE        0x008
  576. # define SSOP_LOCALOPTIONS    0x010
  577. # define SSOP_OPTIONS        0x020
  578. # define SSOP_HELP        0x040
  579. # define SSOP_BLANK        0x080
  580. # define SSOP_GLOBALS        0x100
  581. # define SSOP_SLASH        0x200
  582. # define SSOP_UNIX        0x400
  583. # define SSOP_SESDIR        0x800
  584. # define SSOP_CURDIR        0x1000
  585. # define SSOP_FOLDS        0x2000
  586. # define SSOP_CURSOR        0x4000
  587. #endif
  588. EXTERN char_u    *p_sh;        /* 'shell' */
  589. EXTERN char_u    *p_shcf;    /* 'shellcmdflag' */
  590. #ifdef FEAT_QUICKFIX
  591. EXTERN char_u    *p_sp;        /* 'shellpipe' */
  592. #endif
  593. EXTERN char_u    *p_shq;        /* 'shellquote' */
  594. EXTERN char_u    *p_sxq;        /* 'shellxquote' */
  595. EXTERN char_u    *p_srr;        /* 'shellredir' */
  596. #ifdef AMIGA
  597. EXTERN long    p_st;        /* 'shelltype' */
  598. #endif
  599. #ifdef BACKSLASH_IN_FILENAME
  600. EXTERN int    p_ssl;        /* 'shellslash' */
  601. #endif
  602. #ifdef FEAT_STL_OPT
  603. EXTERN char_u    *p_stl;        /* 'statusline' */
  604. #endif
  605. EXTERN int    p_sr;        /* 'shiftround' */
  606. EXTERN char_u    *p_shm;        /* 'shortmess' */
  607. #ifdef FEAT_LINEBREAK
  608. EXTERN char_u    *p_sbr;        /* 'showbreak' */
  609. #endif
  610. #ifdef FEAT_CMDL_INFO
  611. EXTERN int    p_sc;        /* 'showcmd' */
  612. #endif
  613. EXTERN int    p_sft;        /* 'showfulltag' */
  614. EXTERN int    p_sm;        /* 'showmatch' */
  615. EXTERN int    p_smd;        /* 'showmode' */
  616. EXTERN long    p_ss;        /* 'sidescroll' */
  617. EXTERN long    p_siso;        /* 'sidescrolloff' */
  618. EXTERN int    p_scs;        /* 'smartcase' */
  619. EXTERN int    p_sta;        /* 'smarttab' */
  620. #ifdef FEAT_WINDOWS
  621. EXTERN int    p_sb;        /* 'splitbelow' */
  622. #endif
  623. #ifdef FEAT_VERTSPLIT
  624. EXTERN int    p_spr;        /* 'splitright' */
  625. #endif
  626. EXTERN int    p_sol;        /* 'startofline' */
  627. EXTERN char_u    *p_su;        /* 'suffixes' */
  628. EXTERN char_u    *p_sws;        /* 'swapsync' */
  629. EXTERN char_u    *p_swb;        /* 'switchbuf' */
  630. EXTERN int    p_tbs;        /* 'tagbsearch' */
  631. EXTERN long    p_tl;        /* 'taglength' */
  632. EXTERN int    p_tr;        /* 'tagrelative' */
  633. EXTERN char_u    *p_tags;    /* 'tags' */
  634. EXTERN int    p_tgst;        /* 'tagstack' */
  635. #ifdef FEAT_MBYTE
  636. EXTERN char_u    *p_tenc;    /* 'termencoding' */
  637. #endif
  638. EXTERN int    p_terse;    /* 'terse' */
  639. EXTERN int    p_ta;        /* 'textauto' */
  640. EXTERN int    p_to;        /* 'tildeop' */
  641. EXTERN int    p_timeout;    /* 'timeout' */
  642. EXTERN long    p_tm;        /* 'timeoutlen' */
  643. #ifdef FEAT_TITLE
  644. EXTERN int    p_title;    /* 'title' */
  645. EXTERN long    p_titlelen;    /* 'titlelen' */
  646. EXTERN char_u    *p_titleold;    /* 'titleold' */
  647. EXTERN char_u    *p_titlestring;    /* 'titlestring' */
  648. #endif
  649. #ifdef FEAT_INS_EXPAND
  650. EXTERN char_u    *p_tsr;        /* 'thesaurus' */
  651. #endif
  652. EXTERN int    p_ttimeout;    /* 'ttimeout' */
  653. EXTERN long    p_ttm;        /* 'ttimeoutlen' */
  654. EXTERN int    p_tbi;        /* 'ttybuiltin' */
  655. EXTERN int    p_tf;        /* 'ttyfast' */
  656. #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32)
  657. EXTERN char_u    *p_toolbar;    /* 'toolbar' */
  658. #endif
  659. EXTERN long    p_ttyscroll;    /* 'ttyscroll' */
  660. #if defined(FEAT_MOUSE) && (defined(UNIX) || defined(VMS))
  661. EXTERN char_u    *p_ttym;    /* 'ttymouse' */
  662. EXTERN unsigned ttym_flags;
  663. # ifdef IN_OPTION_C
  664. static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", NULL};
  665. # endif
  666. # define TTYM_XTERM    0x01
  667. # define TTYM_XTERM2    0x02
  668. # define TTYM_DEC    0x04
  669. # define TTYM_NETTERM    0x08
  670. # define TTYM_JSBTERM    0x10
  671. # define TTYM_PTERM    0x20
  672. #endif
  673. EXTERN long    p_ul;        /* 'undolevels' */
  674. EXTERN long    p_uc;        /* 'updatecount' */
  675. EXTERN long    p_ut;        /* 'updatetime' */
  676. #if defined(FEAT_WINDOWS) || defined(FEAT_FOLDING)
  677. EXTERN char_u    *p_fcs;        /* 'fillchar' */
  678. #endif
  679. #ifdef FEAT_VIMINFO
  680. EXTERN char_u    *p_viminfo;    /* 'viminfo' */
  681. #endif
  682. #ifdef FEAT_SESSION
  683. EXTERN char_u    *p_vdir;    /* 'viewdir' */
  684. EXTERN char_u    *p_vop;        /* 'viewoptions' */
  685. EXTERN unsigned    vop_flags;    /* uses SSOP_ flags */
  686. #endif
  687. EXTERN int    p_vb;        /* 'visualbell' */
  688. #ifdef FEAT_VIRTUALEDIT
  689. EXTERN char_u    *p_ve;        /* 'virtualedit' */
  690. EXTERN unsigned ve_flags;
  691. # ifdef IN_OPTION_C
  692. static char *(p_ve_values[]) = {"block", "insert", "all", NULL};
  693. # endif
  694. # define VE_BLOCK    5    /* includes "all" */
  695. # define VE_INSERT    6    /* includes "all" */
  696. # define VE_ALL        4
  697. #endif
  698. EXTERN long    p_verbose;    /* 'verbose' */
  699. EXTERN int    p_warn;        /* 'warn' */
  700. #if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(LINT) \
  701.     || defined (FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON)
  702. #define FEAT_WAK
  703. EXTERN char_u    *p_wak;        /* 'winaltkeys' */
  704. #endif
  705. #ifdef FEAT_WILDIGN
  706. EXTERN char_u    *p_wig;        /* 'wildignore' */
  707. #endif
  708. EXTERN int    p_wiv;        /* 'weirdinvert' */
  709. EXTERN char_u    *p_ww;        /* 'whichwrap' */
  710. EXTERN long    p_wc;        /* 'wildchar' */
  711. EXTERN long    p_wcm;        /* 'wildcharm' */
  712. EXTERN char_u    *p_wim;        /* 'wildmode' */
  713. #ifdef FEAT_WILDMENU
  714. EXTERN int    p_wmnu;        /* 'wildmenu' */
  715. #endif
  716. #ifdef FEAT_WINDOWS
  717. EXTERN long    p_wh;        /* 'winheight' */
  718. EXTERN long    p_wmh;        /* 'winminheight' */
  719. #endif
  720. #ifdef FEAT_VERTSPLIT
  721. EXTERN long    p_wmw;        /* 'winminwidth' */
  722. EXTERN long    p_wiw;        /* 'winwidth' */
  723. #endif
  724. EXTERN int    p_ws;        /* 'wrapscan' */
  725. EXTERN int    p_write;    /* 'write' */
  726. EXTERN int    p_wa;        /* 'writeany' */
  727. EXTERN int    p_wb;        /* 'writebackup' */
  728. EXTERN long    p_wd;        /* 'writedelay' */
  729.